//验证信息
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}  
var Verification = {};
//字符串长度
Verification.GetLength = function(str) {
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) realLength += 1;
        else realLength += 2;
    }
    return realLength;
};
//银行卡验证
Verification.TypeCard = function(str){
	var reg = /^(\d{16}|\d{19})$/;
	if(!reg.test(str)){
		return "银行卡号位数不对";
	};
	return true;
};
//手机号验证
Verification.checkMobile = function(sMobile){
	if(!(/^1[3|4|5|6|7|8][0-9]\d{4,8}$/.test(sMobile))){
  		return "手机号不对";
 	}
 	return true;
}
//中文名字验证
Verification.checkStr = function(str){
	var re1 = new RegExp("^([\u4E00-\uFA29]|[\uE7C7-\uE7F3])*$");
	if (!re1.test(str)){
		return "请输入中文名字";
	}
	return true;
}
//身份证号验证
Verification.isCardID = function(sId){
	var iSum=0 ;
    var info="" ;
    if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";
    sId=sId.replace(/x$/i,"a");
    if(aCity[parseInt(sId.substr(0,2))]==null) return "你的身份证地区非法";
    sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
    var d=new Date(sBirthday.replace(/-/g,"/")) ;
    if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "身份证上的出生日期非法";
    for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
    if(iSum%11!=1) return "你输入的身份证号非法";
    //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
    return true;
}
//验证正整数
Verification.PositiveInteger = function (argument) {
	var str = new RegExp("^\\d+$");
	if(!str.test(argument)){
		return "输入的数字格式不对";
	}
	return true;
}
//验证邮箱
Verification.mailbox = function(argument){
	var str = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
	if(!str.test(argument)){
		return "邮箱格式有误，请重新输入！";
	}
	return true;
}
// 验证数据类型
Verification.DateType = function(str){
	// 字符串
	if (Object.prototype.toString.call(str) === "[object String]") {
		return "String";
	};
	// 数字
	if (Object.prototype.toString.call(str) === "[object Number]") {
		return "Number";
	};
	// 数组
	if (Object.prototype.toString.call(str) === "[object Array]") {
		return "Array";
	};
	// 时间
	if (Object.prototype.toString.call(str) === "[object Date]") {
		return "Date";
	};
	// 函数
	if (Object.prototype.toString.call(str) === "[object Function]") {
		return "Function";
	};
	// 对象
	if (Object.prototype.toString.call(str) === "[object object]") {
		return "object";
	};
	// Undefined
	if (Object.prototype.toString.call(str) === "[object Undefined]") {
		return "Undefined";
	};
	// Null
	if (Object.prototype.toString.call(str) === "[object Null]") {
		return "Null";
	};
}